from PublicReference.base import *


class 职业主动技能(主动技能):

    data0 = []
    data1 = []
    data2 = []

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能0(被动技能):
    名称 = '暗蚀'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    自定义描述 = 1
    关联技能 = ['双重投射', '暗矛投射', '暗矛贯穿', '绝望枪', '暗蚀螺旋枪', '连锁侵蚀',
            '坠蚀之雨', '暗蚀爆雷杀', '黑蚀酷刑', '冥夜裂空', '冥蚀脉冲', '虚空碎灭']

    def 属强加成(self):
        if self.等级 == 0:
            return 0
        else:
            return round(self.等级 * 4 + 30)

    def 加成倍率(self, 武器类型):
        return 1.2

    def 技能描述(self, 武器类型):
        temp = '暗属性强化增加：{}<br>'.format(self.等级 * 4 + 30)
        temp += '黑雷技能额外伤害比率：20%'
        return temp


class 技能1(职业主动技能):
    名称 = '侵蚀之矛'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    data0 = [(i*1.134) for i in [0, 1790, 1971, 2153, 2335, 2516, 2698, 2879, 3061, 3244, 3425, 3606, 3787, 3969, 4150, 4333, 4515, 4695, 4877, 5059, 5241, 5423, 5605, 5785, 5967, 6148, 6331, 6513, 6694, 6875, 7056, 7238, 7421, 7602, 7784, 7965,
                                 8146, 8329, 8510, 8692, 8874, 9055, 9236, 9419, 9600, 9782, 9963, 10145, 10327, 10508, 10690, 10871, 11053, 11234, 11416, 11598, 11779, 11961, 12143, 12324, 12506, 12688, 12869, 13051, 13232, 13415, 13596, 13777, 13959, 14140, 14322]]
    攻击次数 = 1
    # 基础 = 1607.71111111111
    # 成长 = 181.644444444444
    CD = 5
    TP成长 = 0.1
    TP上限 = 5


class 技能2(职业主动技能):
    名称 = '双重投射'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 1633.33333333333
    # 成长 = 184.666666666667
    data0 = [(i*1.135) for i in [0, 909, 1002, 1095, 1185, 1278, 1371, 1463, 1555, 1648, 1741, 1832, 1925, 2016, 2109, 2202, 2295, 2386, 2479, 2570, 2663, 2755, 2847, 2940, 3033, 3125, 3216, 3309, 3401, 3494, 3586, 3679, 3771, 3863,
                                 3955, 4047, 4140, 4233, 4325, 4417, 4508, 4601, 4694, 4786, 4878, 4971, 5064, 5155, 5247, 5340, 5432, 5525, 5617, 5709, 5802, 5894, 5985, 6078, 6171, 6263, 6355, 6448, 6539, 6632, 6725, 6816, 6909, 7002, 7095, 7185, 7278]]
    攻击次数 = 2
    # 被动倍率 = 1.2
    CD = 6
    TP成长 = 0.1
    TP上限 = 5


class 技能3(被动技能):
    名称 = '暗矛精通'
    所在等级 = 20
    等级上限 = 30
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 20:
            return round(1 + 0.01 * self.等级, 5)
        else:
            return round(0.8 + 0.02 * self.等级, 5)

    def 魔法攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)


class 技能4(职业主动技能):
    名称 = '暗矛投射'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    data0 = [(i*1.135) for i in [0, 573, 631, 688, 746, 805, 863, 921, 978, 1037, 1095, 1153, 1212, 1270, 1327, 1385, 1445, 1502, 1560, 1617, 1676, 1735, 1792, 1851, 1909, 1966, 2025, 2084, 2141, 2199, 2258, 2315, 2374, 2432,
                                 2490, 2548, 2605, 2664, 2723, 2780, 2838, 2897, 2955, 3013, 3071, 3128, 3187, 3245, 3303, 3362, 3420, 3477, 3536, 3594, 3652, 3710, 3767, 3826, 3885, 3942, 4001, 4059, 4116, 4175, 4234, 4291, 4349, 4406, 4465, 4524, 4581]]
    攻击次数 = 4
    # 基础 = 2059.2380952381
    # 成长 = 232.380952380952
    # 被动倍率 = 1.2
    CD = 7
    TP成长 = 0.1
    TP上限 = 5


class 技能5(职业主动技能):
    名称 = '黑暗枪雨'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 基础 = 4060.68292682927
    # 成长 = 459.317073170732
    data0 = [(i*1.135) for i in [0, 565, 623, 680, 737, 795, 852, 909, 966, 1025, 1082, 1140, 1197, 1255, 1312, 1369, 1426, 1485, 1542, 1599, 1656, 1714, 1771, 1828, 1885, 1943, 2000, 2057, 2115, 2173, 2230, 2288, 2345, 2403,
                                 2460, 2517, 2575, 2633, 2690, 2747, 2805, 2862, 2919, 2976, 3034, 3091, 3148, 3205, 3264, 3321, 3379, 3436, 3494, 3551, 3608, 3665, 3724, 3781, 3838, 3895, 3953, 4010, 4067, 4125, 4182, 4239, 4296, 4355, 4412, 4469, 4527]]
    攻击次数 = 8
    CD = 12
    TP成长 = 0.1
    TP上限 = 5


class 技能6(职业主动技能):
    名称 = '暗矛贯穿'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 魔枪贯穿攻击力：<data0>%
    data0 = [(i*1.138) for i in [0, 1063, 1171, 1278, 1385, 1494, 1603, 1710, 1817, 1925, 2033, 2141, 2248, 2357, 2465, 2573, 2680, 2788, 2895, 3005, 3112, 3220, 3327, 3435, 3543, 3651, 3759, 3867, 3975, 4083, 4190, 4298, 4405, 4515,
                                 4622, 4730, 4837, 4945, 5053, 5161, 5269, 5377, 5485, 5593, 5700, 5808, 5916, 6025, 6132, 6240, 6347, 6455, 6563, 6672, 6779, 6887, 6995, 7103, 7210, 7317, 7426, 7535, 7642, 7750, 7857, 7965, 8074, 8182, 8289, 8397, 8505]]
    # 冲击波攻击力：<data1>%
    data1 = [(i*1.138) for i in [0, 1586, 1747, 1908, 2069, 2230, 2391, 2552, 2713, 2874, 3035, 3196, 3357, 3518, 3679, 3840, 4001, 4162, 4323, 4484, 4645, 4805, 4966, 5128, 5288, 5450, 5611, 5772, 5933, 6094, 6255, 6415, 6576, 6737, 6899,
                                 7059, 7221, 7381, 7543, 7703, 7865, 8025, 8186, 8347, 8508, 8670, 8830, 8992, 9152, 9314, 9474, 9635, 9795, 9957, 10117, 10279, 10441, 10601, 10763, 10923, 11085, 11245, 11406, 11566, 11728, 11888, 12050, 12210, 12372, 12532, 12694]]
    攻击次数2 = 1
    # 基础 = 2380.175
    # 成长 = 268.825
    # 被动倍率 = 1.2
    CD = 8
    TP成长 = 0.1
    TP上限 = 5


class 技能7(被动技能):
    名称 = '暗枪突破'
    所在等级 = 30
    等级上限 = 11
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.09 + 0.01 * self.等级, 5)


class 技能8(职业主动技能):
    名称 = '黑蚀葬礼'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 黑暗之枪爆炸攻击力：<data0>%
    data0 = [(i*1.107) for i in [0, 1548, 1705, 1862, 2019, 2177, 2334, 2491, 2647, 2805, 2963, 3119, 3276, 3435, 3591, 3748, 3905, 4062, 4219, 4376, 4533, 4690, 4848, 5005, 5162, 5318, 5476, 5634, 5790, 5947, 6105, 6262, 6419, 6575, 6734,
                                 6891, 7047, 7205, 7361, 7519, 7675, 7833, 7989, 8147, 8305, 8461, 8618, 8776, 8933, 9090, 9246, 9405, 9562, 9718, 9875, 10032, 10190, 10347, 10504, 10661, 10818, 10975, 11132, 11289, 11447, 11604, 11761, 11917, 12075, 12233, 12389]]
    # 黑雷枪爆炸攻击力：<data1>%
    data1 = [(i*1.107) for i in [0, 2322, 2558, 2794, 3029, 3265, 3501, 3736, 3973, 4208, 4443, 4679, 4915, 5151, 5386, 5622, 5858, 6094, 6329, 6565, 6800, 7035, 7272, 7507, 7743, 7979, 8215, 8451, 8686, 8921, 9157, 9393, 9628, 9865, 10100, 10335,
                                 10572, 10806, 11042, 11278, 11514, 11750, 11985, 12221, 12457, 12693, 12927, 13165, 13399, 13635, 13871, 14106, 14342, 14578, 14814, 15048, 15285, 15520, 15756, 15992, 16227, 16464, 16699, 16935, 17171, 17405, 17641, 17877, 18113, 18348, 18585]]
    攻击次数2 = 1
    # 基础 = 3477.21621621622
    # 成长 = 392.783783783784
    # 被动倍率 = 1.116465014
    CD = 10
    TP成长 = 0.1
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        等效倍率 += self.data0[self.等级] * self.攻击次数
        # 暗雷系
        等效倍率 += self.data1[self.等级] * self.攻击次数2 * 1.2
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能9(职业主动技能):
    名称 = '绝望枪'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 投掷魔枪攻击力：<data0>%
    data0 = [(i*1.135) for i in [0, 382, 420, 459, 497, 536, 575, 614, 652, 692, 730, 769, 807, 846, 885, 924, 962, 1001, 1041, 1079, 1118, 1156, 1195, 1234, 1273, 1311, 1349, 1388, 1428, 1466, 1505, 1544, 1583, 1621, 1660,
                                 1698, 1737, 1775, 1815, 1854, 1893, 1931, 1970, 2008, 2047, 2085, 2125, 2163, 2203, 2242, 2280, 2319, 2357, 2396, 2435, 2473, 2512, 2550, 2590, 2629, 2667, 2706, 2745, 2784, 2822, 2861, 2899, 2938, 2977, 3016, 3055]]
    攻击次数 = 9
    # 基础 = 3089.43243243243
    # 成长 = 348.567567567568
    # 被动倍率 = 1.2
    CD = 8
    TP成长 = 0.1
    TP上限 = 5


class 技能10(职业主动技能):
    名称 = '暗蚀螺旋枪'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 5703.11428571429
    # 成长 = 645.885714285714
    # 多段攻击力：<data0>% x 20
    data0 = [(i*1.136) for i in [0, 200, 220, 241, 261, 281, 302, 322, 343, 363, 383, 404, 424, 445, 465, 485, 505, 525, 546, 566, 586, 607, 627, 648, 668, 688, 709, 729, 749, 770, 790, 811, 831, 851, 872, 892,
                                 913, 933, 953, 974, 994, 1015, 1035, 1055, 1075, 1095, 1116, 1136, 1156, 1177, 1197, 1217, 1238, 1258, 1279, 1299, 1319, 1340, 1360, 1381, 1401, 1421, 1442, 1462, 1483, 1503, 1523, 1544, 1564, 1585, 1605]]
    攻击次数 = 20
    # 爆炸攻击力：<data1>%
    data1 = [(i*1.136) for i in [0, 2349, 2588, 2826, 3065, 3303, 3542, 3781, 4018, 4257, 4495, 4734, 4972, 5211, 5450, 5687, 5926, 6165, 6403, 6641, 6880, 7117, 7356, 7595, 7834, 8072, 8310, 8549, 8786, 9025, 9265, 9502, 9741, 9979, 10218, 10455,
                                 10695, 10934, 11171, 11410, 11648, 11886, 12125, 12364, 12603, 12840, 13079, 13317, 13555, 13794, 14033, 14270, 14509, 14748, 14986, 15225, 15463, 15702, 15939, 16178, 16416, 16655, 16893, 17132, 17371, 17608, 17847, 18085, 18324, 18562, 18801]]
    攻击次数2 = 1
    # 被动倍率 = 1.2
    CD = 18
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.25
        elif x == 1:
            self.倍率 *= 1.25 + 0.09


class 技能11(职业主动技能):
    名称 = '连锁侵蚀'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 浓缩黑雷攻击力：<data0>%
    data0 = [(i*1.135) for i in [0, 2194, 2415, 2638, 2861, 3085, 3306, 3529, 3751, 3974, 4196, 4420, 4642, 4865, 5086, 5309, 5532, 5755, 5977, 6200, 6423, 6645, 6867, 7089, 7313, 7535, 7758, 7980, 8203, 8425, 8648, 8871, 9094, 9315, 9538, 9760,
                                 9984, 10206, 10429, 10651, 10874, 11096, 11319, 11542, 11765, 11986, 12209, 12432, 12654, 12877, 13100, 13322, 13545, 13767, 13989, 14213, 14435, 14657, 14880, 15103, 15325, 15548, 15771, 15993, 16215, 16438, 16660, 16884, 17106, 17328, 17551]]
    # 持续伤害攻击力：<data1>%
    data1 = [(i*1.135) for i in [0, 548, 604, 659, 715, 770, 826, 881, 937, 993, 1049, 1105, 1160, 1216, 1271, 1327, 1383, 1438, 1494, 1550, 1605, 1661, 1715, 1772, 1828, 1884, 1939, 1995, 2051, 2105, 2162, 2217, 2273, 2328,
                                 2385, 2439, 2495, 2552, 2606, 2663, 2718, 2774, 2829, 2885, 2940, 2996, 3052, 3107, 3163, 3219, 3275, 3330, 3386, 3441, 3497, 3553, 3608, 3664, 3720, 3775, 3831, 3887, 3942, 3998, 4054, 4109, 4165, 4221, 4275, 4332, 4387]]
    攻击次数2 = 6
    # 基础 = 4925.65714285714
    # 成长 = 556.342857142857
    CD = 20
    TP成长 = 0.1
    TP上限 = 5


class 技能12(职业主动技能):
    名称 = '坠蚀之雨'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 基础 = 6881.875
    # 成长 = 778.125
    CD = 22
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    data0 = [(i*1.135) for i in [0, 383, 422, 461, 500, 538, 577, 615, 655, 694, 733, 771, 811, 850, 888, 927, 966, 1005, 1044, 1083, 1123, 1161, 1200, 1238, 1277, 1316, 1355, 1394, 1433, 1473, 1511, 1550, 1588, 1628, 1666,
                                 1705, 1744, 1784, 1823, 1861, 1900, 1938, 1978, 2016, 2055, 2094, 2134, 2173, 2211, 2250, 2289, 2328, 2366, 2405, 2444, 2484, 2523, 2561, 2600, 2639, 2678, 2716, 2755, 2795, 2834, 2873, 2911, 2951, 2989, 3028, 3066]]
    攻击次数 = 20

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 22
            self.data1 = [(i*3.6) for i in self.data1]
            self.攻击次数2 = 1
            # self.倍率 *= 1.28
        elif x == 1:
            self.data0 = [(i*1.09) for i in self.data0]
            self.攻击次数 = 22
            self.data1 = [(i*3.6) for i in self.data1]
            self.攻击次数2 = 1
            # self.倍率 *= 1.3952


class 技能13(职业主动技能):
    名称 = '暗蚀爆雷杀'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 基础 = 12367.6
    # 成长 = 1396.4
    # 被动倍率 = 1.2
    # 贯穿攻击力：<data0>%
    data0 = [(i*1.135) for i in [0, 4958, 5460, 5964, 6466, 6970, 7472, 7975, 8479, 8981, 9485, 9987, 10491, 10993, 11496, 11999, 12503, 13005, 13508, 14012, 14515, 15017, 15520, 16024, 16527, 17029, 17532, 18035, 18539, 19041, 19545, 20047, 20551, 21053, 21556,
                                 22060, 22563, 23065, 23568, 24072, 24575, 25077, 25580, 26084, 26585, 27089, 27593, 28095, 28597, 29101, 29605, 30107, 30610, 31113, 31616, 32120, 32622, 33125, 33628, 34132, 34634, 35137, 35640, 36144, 36645, 37149, 37653, 38155, 38658, 39161, 39665]]
    # 冲击波攻击力：<data1>%
    data1 = [(i*1.135) for i in [0, 3493, 3847, 4201, 4555, 4910, 5265, 5618, 5973, 6327, 6682, 7035, 7390, 7745, 8100, 8453, 8807, 9163, 9517, 9870, 10225, 10580, 10935, 11289, 11643, 11997, 12352, 12706, 13060, 13415, 13769, 14124, 14477, 14832, 15186,
                                 15541, 15895, 16249, 16604, 16959, 17312, 17667, 18022, 18376, 18730, 19085, 19439, 19794, 20147, 20502, 20856, 21211, 21565, 21919, 22274, 22628, 22983, 23336, 23691, 24045, 24401, 24754, 25108, 25464, 25818, 26172, 26526, 26881, 27235, 27589, 27944]]
    攻击次数2 = 1
    # 爆炸攻击力：<data2>%
    data2 = [(i*1.135) for i in [0, 5313, 5853, 6392, 6930, 7470, 8008, 8548, 9086, 9625, 10165, 10704, 11244, 11782, 12322, 12860, 13399, 13938, 14477, 15017, 15555, 16095, 16634, 17173, 17711, 18251, 18791, 19329, 19868, 20407, 20946, 21485, 22025, 22563, 23103,
                                 23642, 24180, 24720, 25258, 25798, 26336, 26876, 27415, 27954, 28494, 29032, 29572, 30110, 30649, 31189, 31727, 32267, 32805, 33345, 33884, 34423, 34963, 35501, 36041, 36579, 37118, 37657, 38196, 38735, 39275, 39815, 40353, 40892, 41431, 41970, 42508]]
    攻击次数3 = 1
    CD = 40
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.24
            self.CD *= 0.9
        elif x == 1:
            self.倍率 *= 1.24 + 0.08
            self.CD *= 0.9


class 技能14(被动技能):
    名称 = '黑暗支配者'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.105 + 0.015 * self.等级, 5)


class 技能15(职业主动技能):
    名称 = '无尽侵蚀：缚魂'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    # 黑暗之枪攻击力：<data0>% x 15
    data0 = [(i*1.135) for i in [0, 1258, 1551, 1844, 2135, 2427, 2719, 3012, 3303, 3595, 3887, 4180, 4471, 4764, 5055, 5348, 5639, 5932, 6224, 6516, 6807, 7100, 7392, 7684, 7975, 8268, 8559, 8852, 9144, 9436, 9727, 10020, 10312, 10605, 10895, 11188,
                                 11480, 11773, 12064, 12356, 12648, 12941, 13232, 13525, 13816, 14109, 14400, 14693, 14985, 15276, 15568, 15861, 16153, 16445, 16736, 17029, 17320, 17613, 17905, 18197, 18488, 18781, 19073, 19365, 19656, 19949, 20241, 20534, 20825, 21117, 21409]]
    攻击次数 = 15
    # 爆炸攻击力：<data1>% x 10 - 黑雷系
    data1 = [(i*1.135) for i in [0, 2308, 2845, 3379, 3914, 4450, 4985, 5521, 6056, 6592, 7127, 7662, 8198, 8733, 9269, 9804, 10340, 10875, 11410, 11945, 12481, 13016, 13552, 14087, 14623, 15157, 15694, 16228, 16765, 17299, 17835, 18370, 18905, 19441, 19976,
                                 20512, 21047, 21584, 22118, 22653, 23189, 23724, 24260, 24795, 25331, 25865, 26401, 26937, 27472, 28008, 28543, 29079, 29614, 30148, 30685, 31219, 31755, 32291, 32826, 33362, 33896, 34433, 34967, 35504, 36038, 36575, 37109, 37645, 38180, 38715, 39251]]
    攻击次数2 = 10
    # 基础 = 32105
    # 成长 = 9745
    # 被动倍率 = 1.1
    CD = 145

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        等效倍率 += self.data0[self.等级] * self.攻击次数
        # 暗雷系
        等效倍率 += self.data1[self.等级] * self.攻击次数2 * 1.2
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能16(职业主动技能):
    名称 = '暗影蚀魂'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    data0 = [(i*1.135) for i in [0, 14655, 16143, 17629, 19115, 20604, 22090, 23576, 25065, 26551, 28037, 29525, 31011, 32497, 33985, 35472, 36958, 38446, 39933, 41419, 42905, 44393, 45879, 47366, 48854, 50340, 51826, 53315, 54801, 56287, 57775, 59261, 60748, 62235, 63722,
                                 65208, 66696, 68183, 69669, 71156, 72643, 74130, 75617, 77104, 78590, 80078, 81565, 83051, 84538, 86025, 87512, 88999, 90485, 91972, 93460, 94946, 96433, 97920, 99406, 100894, 102381, 103867, 105354, 106842, 108328, 109815, 111301, 112788, 114275, 115762, 117249]]
    # 基础 = 13168.1363636364
    # 成长 = 1486.86363636364
    CD = 30
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.27
        elif x == 1:
            self.倍率 *= 1.27 + 0.09


class 技能17(职业主动技能):
    名称 = '黑蚀酷刑'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    # 基础 = 20123.2941176471
    # 成长 = 2272.70588235294
    # 被动倍率 = 1.2
    # 巨大魔枪攻击力：<data0>%
    data0 = [(i*1.135) for i in [0, 4566, 5028, 5492, 5955, 6419, 6881, 7345, 7808, 8272, 8734, 9197, 9661, 10125, 10588, 11050, 11514, 11977, 12441, 12903, 13366, 13830, 14294, 14756, 15219, 15683, 16146, 16609, 17072, 17535, 17999, 18463, 18925, 19388, 19852,
                                 20315, 20778, 21242, 21705, 22168, 22631, 23095, 23558, 24021, 24484, 24947, 25411, 25874, 26336, 26800, 27264, 27727, 28190, 28653, 29116, 29580, 30044, 30505, 30969, 31433, 31896, 32358, 32822, 33285, 33749, 34211, 34675, 35138, 35602, 36065, 36527]]
    # 小型魔枪攻击力：<data1>%
    data1 = [(i*1.135) for i in [0, 1141, 1257, 1373, 1489, 1605, 1719, 1835, 1951, 2067, 2183, 2299, 2415, 2531, 2646, 2763, 2878, 2994, 3110, 3225, 3342, 3457, 3574, 3688, 3804, 3920, 4035, 4152, 4267, 4384, 4499, 4615, 4731, 4847,
                                 4963, 5078, 5195, 5310, 5426, 5542, 5656, 5773, 5888, 6005, 6120, 6236, 6352, 6468, 6584, 6700, 6815, 6932, 7047, 7164, 7279, 7395, 7511, 7625, 7742, 7857, 7973, 8089, 8205, 8321, 8436, 8553, 8668, 8785, 8900, 9016, 9132]]
    攻击次数2 = 10
    # 爆炸攻击力：<data2>%
    data2 = [(i*1.135) for i in [0, 6420, 7071, 7722, 8374, 9025, 9676, 10327, 10979, 11630, 12282, 12933, 13585, 14235, 14887, 15538, 16188, 16841, 17491, 18144, 18794, 19446, 20096, 20749, 21399, 22052, 22702, 23353, 24005, 24655, 25307, 25958, 26610, 27261,
                                 27913, 28564, 29215, 29866, 30517, 31169, 31820, 32472, 33123, 33775, 34425, 35077, 35728, 36380, 37031, 37683, 38334, 38985, 39636, 40287, 40939, 41590, 42242, 42893, 43545, 44195, 44847, 45498, 46149, 46801, 47452, 48104, 48755, 49406, 50057, 50709, 51360]]
    攻击次数3 = 1
    CD = 45
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数2 = 0
            self.倍率 *= 2.42
            # self.倍率 *= 1.186843623
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数2 = 0
            self.倍率 *= 2.58
            # self.倍率 *= 1.265312237
            self.CD *= 0.9


class 技能18(被动技能):
    名称 = '黑暗本源'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能19(职业主动技能):
    名称 = '冥夜裂空'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    data0 = [(i*1.135) for i in [0, 1817, 2003, 2186, 2371, 2555, 2740, 2925, 3109, 3294, 3477, 3663, 3847, 4031, 4216, 4400, 4585, 4770, 4954, 5138, 5322, 5507, 5692, 5875, 6061, 6245, 6429, 6615, 6798, 6983, 7166, 7352, 7536, 7720, 7905, 8089,
                                 8274, 8459, 8643, 8827, 9011, 9196, 9381, 9565, 9750, 9934, 10118, 10304, 10487, 10672, 10856, 11041, 11225, 11410, 11595, 11778, 11964, 12148, 12332, 12517, 12701, 12885, 13071, 13255, 13439, 13623, 13808, 13993, 14176, 14362, 14545]]
    攻击次数 = 20
    # 基础 = 32649.3333333333
    # 成长 = 3690.66666666667
    # 被动倍率 = 1.2
    CD = 40
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.34


class 技能20(职业主动技能):
    名称 = '冥蚀脉冲'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    # 基础 = 37386.1666666667
    # 成长 = 4222.83333333333
    # 被动倍率 = 1.2
    # 黑暗气息攻击力：<data0>%
    data0 = [(i*1.135) for i in [0, 4161, 4584, 5006, 5427, 5850, 6273, 6694, 7116, 7539, 7962, 8383, 8805, 9228, 9649, 10072, 10495, 10917, 11338, 11761, 12184, 12605, 13027, 13450, 13872, 14294, 14716, 15139, 15561, 15983, 16405, 16827, 17249, 17672, 18094,
                                 18516, 18938, 19361, 19783, 20205, 20627, 21049, 21472, 21894, 22315, 22738, 23160, 23583, 24005, 24427, 24849, 25271, 25694, 26115, 26537, 26960, 27383, 27805, 28226, 28649, 29071, 29493, 29915, 30338, 30760, 31182, 31605, 32026, 32448, 32871, 33294]]
    # 地面射出的黑雷枪攻击力：<data1>% x 8
    data1 = [(i*1.135) for i in [0, 2184, 2406, 2627, 2849, 3071, 3293, 3514, 3736, 3957, 4180, 4401, 4622, 4845, 5065, 5287, 5509, 5731, 5953, 6175, 6395, 6618, 6839, 7060, 7283, 7504, 7726, 7947, 8168, 8391, 8612, 8835, 9055, 9277, 9499, 9721,
                                 9942, 10165, 10385, 10608, 10829, 11050, 11273, 11494, 11715, 11937, 12159, 12381, 12603, 12824, 13045, 13267, 13488, 13711, 13932, 14155, 14375, 14596, 14819, 15040, 15262, 15484, 15705, 15927, 16149, 16370, 16593, 16814, 17035, 17257, 17478]]
    攻击次数2 = 8
    # 爆炸攻击力：<data2>%
    data2 = [(i*1.135) for i in [0, 19976, 22002, 24028, 26055, 28082, 30109, 32135, 34162, 36188, 38215, 40242, 42267, 44295, 46321, 48348, 50374, 52401, 54427, 56455, 58481, 60506, 62534, 64560, 66587, 68614, 70640, 72666, 74694, 76720, 78745, 80773, 82799, 84826, 86853, 88880,
                                 90905, 92933, 94959, 96985, 99012, 101038, 103065, 105092, 107119, 109145, 111171, 113198, 115225, 117252, 119277, 121305, 123331, 125358, 127384, 129410, 131437, 133464, 135491, 137516, 139544, 141570, 143597, 145624, 147649, 149676, 151703, 153730, 155755, 157783, 159809]]
    攻击次数3 = 1
    CD = 45
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.32
            self.CD *= 0.9


class 技能21(职业主动技能):
    名称 = '幽影暗蚀：寂灭'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    # 黑暗气息攻击力：<data0>%
    data0 = [(i*1.135) for i in [0, 4295, 5289, 6285, 7282, 8277, 9274, 10270, 11265, 12261, 13256, 14253, 15249, 16244, 17240, 18235, 19232, 20228, 21223, 22219, 23215, 24211, 25207, 26203, 27198, 28194, 29190, 30186, 31182, 32177, 33173, 34169, 35165, 36161,
                                 37156, 38152, 39148, 40145, 41140, 42136, 43131, 44127, 45124, 46119, 47115, 48110, 49106, 50103, 51098, 52095, 53091, 54085, 55082, 56077, 57074, 58070, 59065, 60061, 61056, 62053, 63049, 64044, 65040, 66035, 67032, 68028, 69024, 70019, 71015, 72011, 73007]]
    # 爆炸攻击力：<data1>% 暗雷系
    data1 = [(i*1.135) for i in [0, 81595, 100517, 119438, 138358, 157280, 176200, 195122, 214042, 232964, 251885, 270805, 289726, 308647, 327568, 346490, 365410, 384331, 403252, 422173, 441094, 460015, 478936, 497856, 516778, 535698, 554620, 573540, 592462, 611382, 630304, 649225, 668145, 687066, 705986, 724908,
                                 743828, 762750, 781671, 800592, 819513, 838434, 857355, 876276, 895196, 914116, 933038, 951959, 970880, 989801, 1008723, 1027643, 1046565, 1065485, 1084406, 1103326, 1122248, 1141168, 1160090, 1179011, 1197931, 1216853, 1235773, 1254695, 1273615, 1292536, 1311457, 1330378, 1349299, 1368220, 1387141]]
    攻击次数2 = 1
    # 基础 = 65823.8674698795
    # 成长 = 19946.6265060241
    # 被动倍率 = 1.186269717

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        等效倍率 += self.data0[self.等级] * self.攻击次数
        # 暗雷系
        等效倍率 += self.data1[self.等级] * self.攻击次数2 * 1.2
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率
    CD = 180


class 技能22(被动技能):
    名称 = '暗源之蚀'
    所在等级 = 95
    等级上限 = 40
    等级精通 = 30
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(职业主动技能):
    名称 = '虚空碎灭'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    基础 = 23959.8
    成长 = 2705.2
    攻击次数 = 1
    基础2 = 683.6
    成长2 = 77.4
    攻击次数2 = 20
    基础3 = 30805.8
    成长3 = 3478.2
    攻击次数3 = 1
    CD = 60.0

    def 等效百分比(self, 武器类型):
        if self.等级 == 0:
            return 0
        else:
            return int((self.攻击次数 * (self.基础 + self.成长 * self.等级) + self.攻击次数2 * (self.基础2 + self.成长2 * self.等级) + self.攻击次数3 * (
                        self.基础3 + self.成长3 * self.等级)) * (1 + self.TP成长 * self.TP等级) * self.倍率)

# 贯穿攻击力
# 旋转攻击力
# 爆炸攻击力


class 技能24(职业主动技能):
    名称 = '暗·渊灭禁绝'
    所在等级 = 100
    等级上限 = 40
    等级精通 = 30
    基础等级 = 2
    # 暗蚀之枪
    基础 = 7776.27186064668
    成长 = 2347.72813935332
    攻击次数 = 12
    # 暗雷系
    # 黑雷之枪
    基础2 = 17497.4610988877
    成长2 = 5282.53890111227
    攻击次数2 = 8
    CD = 290.0
    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        return 0.0

    def 等效百分比(self, 武器类型):
        if self.等级 == 0:
            return 0
        else:
            return int((self.攻击次数 * (self.基础 + self.成长 * self.等级) + self.攻击次数2 * (self.基础2 + self.成长2 * self.等级)*1.2) * (1 + self.TP成长 * self.TP等级) * self.倍率)

# 暗蚀之枪攻击力
# 黑雷之枪攻击力


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能' + str(i) + '())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

一觉序号 = 0
二觉序号 = 0
三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        三觉序号 = 技能序号[i.名称]

护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        护石选项.append(i.名称)

符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        符文选项.append(i.名称)


class 职业属性(角色属性):
    实际名称 = '千魂·暗枪士'
    角色 = '魔枪士'
    职业 = '暗枪士'

    武器选项 = ['暗矛']

    类型选择 = ['魔法百分比']

    类型 = '魔法百分比'
    防具类型 = '皮甲'
    防具精通属性 = ['智力']

    主BUFF = 1.93

    远古记忆 = 0

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        self.暗属性强化 += self.技能栏[self.技能序号["暗蚀"]].属强加成()
        super().被动倍率计算()


class 千魂·暗枪士(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 职业属性()
        self.角色属性A = 职业属性()
        self.角色属性B = 职业属性()
        self.一觉序号 = 一觉序号
        self.二觉序号 = 二觉序号
        self.三觉序号 = 三觉序号
        self.护石选项 = deepcopy(护石选项)
        self.符文选项 = deepcopy(符文选项)
